@echo off
chcp 65001 >nul
title 📱💻 双向文件传输工具

echo.
echo ████████████████████████████████████████████████████████
echo █                                                      █
echo █        📱💻 双向文件传输工具 - 便携版                █
echo █                                                      █
echo ████████████████████████████████████████████████████████
echo.

REM 检查Node.js是否已安装
node --version >nul 2>&1
if %errorlevel% equ 0 (
    echo ✅ 检测到系统Node.js环境
    set "NODE_PATH=node"
    set "NPM_PATH=npm"
    echo 🔧 使用系统Node.js环境
    goto :install_deps
)

echo ❌ 未检测到Node.js环境
echo.
echo 🔧 正在为您自动配置便携式Node.js环境...
echo 📥 这可能需要几分钟时间，请耐心等待...
echo.

REM 下载便携式Node.js
if not exist "portable-node" mkdir portable-node

echo 📦 正在下载Node.js便携版...
powershell -Command "& {[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; Invoke-WebRequest -Uri 'https://nodejs.org/dist/v18.19.0/node-v18.19.0-win-x64.zip' -OutFile 'portable-node\node.zip'}"

if exist "portable-node\node.zip" (
    echo 📦 正在解压Node.js...
    powershell -Command "Expand-Archive -Path 'portable-node\node.zip' -DestinationPath 'portable-node' -Force"
    
    if exist "portable-node\node-v18.19.0-win-x64" (
        move "portable-node\node-v18.19.0-win-x64" "portable-node\node" >nul 2>&1
        del "portable-node\node.zip" >nul 2>&1
        echo ✅ Node.js便携版配置完成
    )
)

REM 设置便携式Node.js路径
if exist "portable-node\node\node.exe" (
    set "NODE_PATH=%~dp0portable-node\node\node.exe"
    set "NPM_PATH=%~dp0portable-node\node\npm.cmd"
    echo 🔧 使用便携式Node.js环境
) else (
    echo ❌ Node.js环境配置失败，请检查网络连接或手动安装Node.js
    pause
    exit /b 1
)

:install_deps
echo.
echo 📦 检查项目依赖...
if not exist "node_modules" (
    echo 📥 正在安装依赖包...
    "%NPM_PATH%" install --silent
    if %errorlevel% neq 0 (
        echo ❌ 依赖安装失败，请检查网络连接
        pause
        exit /b 1
    )
    echo ✅ 依赖安装完成
)

echo.
echo 🚀 正在启动服务...
echo.
"%NODE_PATH%" start.js

echo.
echo 📱 服务已停止，按任意键退出...
pause >nul
